实现在字符串的内部增加字符串。

void insert(char * s1,char * s2, int n);
将s2指向的字符串的拷贝，添加到s1第n个字符的位置，原位置的字符后移。n=0时，s2增加到s1的首部；
n=s1的字符串长度时，s2增加到s1的末尾。

注意：使用空格字符来表示字符串的结束。
例如source指向位置，依次保存了字符'a'，字符'b'，字符空格' '，字符'c'，则source指向的字符串为"ab"。

保存为functions.cpp。
遇到异常情况，输出"error"；否则不要随意输出，会视为错误。



#include <stdio.h>
#include <string.h>
void insert(char * s1,char * s2, int n)
{
    char a[255];
    int i, j, k, len1, len2;
    if(n<0 || s1==NULL || s2==NULL)
    {
        printf("error\n");
        return;
    }
    len1 = 0;
    while(s1[len1] != ' ')
    {
        len1++;
    }
    len2 = 0;
    while(s2[len2] != ' ')
    {
        len2++;
    }
    if(n>len1)
    {
        printf("error\n");
        return;
    }
    for(i=0; i<n; i++)
    {
        a[i] = s1[i];
    }
    for(j=0; j<len2; j++)
    {
        a[n+j] = s2[j];
    }
    for(j=i; j<len1; j++)
    {
        a[len2+j] = s1[j];
    }
    for(k=0; k<len1+len2; k++)
    {
        s1[k] = a[k];
    }
    s1[k] = ' ';
    k++;
    for(;k<strlen(s1); k++)
    {
        s1[k] = 0;
    }
}